<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<script type="text/javascript">

		console.log(Array.prototype)
		var arr = [1,2,3,4,5],str = '5',obj = {a: '6'},sy = Symbol('2')
		// arr.splice(2,'a','b')
		// console.log(arr)
		
		//创建数组
		/*
			1.字面量创建
			var empty = []
			var number = 1 
			var list = [number,number+1,number+2]
			var arr = [,,3]

			2.构造函数Array
			var arr = new Array()
			var arr = new Array(5)  => [empty*5]
			var arr = new Array('1',2,3)

			3.Array.of
			let arr = Array.of(3) => [3]
			new Array(3) => [empty*3]

			4.Array.from()
			Array.from('array')  => ['a','r','r','a','y']
			Array.from(new Set(['a','a','b']))
		*/
		// console.log(Array.from('array'))
		// console.log(Array.from(new Set(['a','a','b'])))
         /**
         * push1
         */
         // var l = arr.push(10)
         // console.log(l) //返回数组的长度
         // console.log(arr)


         /**
         * pop1
         */
         // var item = arr.pop()
         // console.log(item)
         // console.log(arr)

         // arr.length = 0
         // console.log(arr.pop())


         /**
         * unshift1
         */
         // var l = arr.unshift(6,7,8)
         // console.log(l)
         // console.log(arr)


         /**
         * shift1
         */
         // var item = arr.shift()
         // console.log(item)
         // console.log(arr)

         // arr.length = 0
         // console.log(arr.shift())


         /**
         * sort1
         */
         // var arr = [45,6,8,4,32]
         // var arr1 = arr.sort()
         // var arr1 = arr.sort((a,b) => {
         // 	return a - b //小到大排
         // })

         // var arr1 = arr.sort((a,b) => {
         // 	return b - a //大到小排
         // })
         // console.log(arr1)
         // console.log(arr)
         

		/**
         * reverse1
         */         
         // var arr1 = arr.reverse()
         // console.log(arr1)
         // console.log(arr)


         /**
         * copyWithin1
         */
        // arr = [1,2,3,4,5]
		// var arr1 = arr.copyWithin() //没变化
		// var arr1 = arr.copyWithin(-2) 
		// var arr1 = arr.copyWithin(0,3)
		// var arr1 = arr.copyWithin(0,3,4)
		// var arr1 = arr.copyWithin(-2,-3,-1)
		// console.log(arr1)
		// console.log(arr)


		/**
         * fill1
         */
        // console.log(arr.fill(4))
        // console.log(arr.fill(5,2))
        // console.log(arr.fill(6,1,3))


        /**
         * flat1
         */
        // arr = [1,[2,3],[4,[5,6]]]
        // console.log(arr.flat())
        // console.log(arr.flat(Infinity))


        /**
         * flatMap1
         */
        // arr = [1,2,3,[4,5]]
        // console.log(arr.flatMap(x => [x * 2]))


        /**
         * slice1
         */
        // var arr1 = arr.slice(1,3)
        // var arr1 = arr.slice(2)
        // var arr1 = arr.slice(-2)
        // var arr1 = arr.slice(-3,-2)
        // var arr1 = arr.slice(3,2)

        // arr = [{a: '1'}]
        // arr1 = arr.slice()
        // arr1[0].a = '2'

        // console.log(arr)
        // console.log(arr1)

        
        /**
         * join1
         */
        // var arr1 = arr.join()

        // arr = [1,,2,3,undefined,[1,2],{a:1},new Date()] //空，null或undefined转成""  元素是数组的话调用join()
        // var arr1 = arr.join("-")
        // console.log(arr)
        // console.log(arr1)
        // console.log([[[12,23],[2]],[2]].join().split(',')) //多维数组，所有元素提取


		/**
         * toString1
         */        
        // var arr1 = arr.toString()
        // console.log(arr)
        // console.log(arr1)

        // console.log([1,,2,3,undefined,[1,2],{a:1},new Date()].toString())


        /**
         * concat1
         */
		// console.log(arr.concat(str,obj,sy))
		// console.log(arr.concat(obj))
		// console.log(arr.concat() == arr)
		// console.log(arr.concat(sy))


		/**
         * isArray1
         */
        // console.log(Array.isArray(new Array()))
        // console.log(Array.isArray(Array.prototype))


        /**
         * forEach1
         */ 
        // arr = [1,2,3,,4,null,undefined] //空值不调用回调，null，undefined都会调用。
        // arr.forEach((item,index,array) => {
        // 	console.log(item,index,array)
        // })

        // let result = arr.forEach((item,index,array) => {
        // 	//forEach的循环次数在循环之前就确定了，可以少，不可以多
        // 	// if(index == 0) {
        // 	// 	arr.pop()
        // 	// }
        // 	// if(index == 1) {
        // 	// 	arr.push(10)
        // 	// }
        // 	// if(index == arr.length -1 ) {
        // 	// 	return 1
        // 	// }
        // 	console.log(item,index,array)
        // })
        // console.log(result)


        /**
         * map1
         */ 
        // let newArr = arr.map((item) => {
        // 	return item*2
        // })
        // console.log(arr,newArr)


        /**
         * filter1
         */ 
        // arr.push({a:1})
        // let newArr = arr.filter((item) => {
        // 	return item > 2
        // })
        // console.log(arr,newArr)


        /**
         * every1
         */ 
        // var result = arr.every((item) => {
        // 	console.log('执行了')
        // 	return item > 0
        // })
        // var result = arr.every((item) => {
        // 	console.log('执行了')
        // 	return item > 2
        // })
        // console.log(arr,result)


        /**
         * some1
         */ 
        // var result = arr.some((item) => {
        // 	console.log('执行了')
        // 	return item > 5
        // })
        // var result = arr.some((item) => {
        // 	console.log('执行了')
        // 	return item > 4
        // })
        // console.log(result)


        /**
         * reduce1
         */ 
        // arr = []
        // var sum = arr.reduce((sum,item,index,arr) => {
        // 	console.log('执行')
        // 	return sum + item
        // })
        // console.log(sum)


        // for(let key of arr.keys()) {
        // 	console.log(key)
        // }

        // for(let value of arr.values()) {
        // 	console.log(value)
        // }

        // for(let [key,value] of arr.entries()) {
        // 	console.log(key,value)
        // }


        // console.log([1,3,2,NaN].includes(NaN))













	</script>
</body>
</html>